<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>SPHinXsys: SPHINXsys/src/shared/particle_dynamics/solid_dynamics/elastic_dynamics.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">SPHinXsys
   &#160;<span id="projectnumber">alpha version</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_3dc1dabd28ba78e072d14d3fcfc90454.html">SPHINXsys</a></li><li class="navelem"><a class="el" href="dir_48ea983704c43b6d88c1fa3f4d09e369.html">src</a></li><li class="navelem"><a class="el" href="dir_0a0d9ef1793521534f0094f317758287.html">shared</a></li><li class="navelem"><a class="el" href="dir_05f659066ce4fa1dc9c19bd298f55a53.html">particle_dynamics</a></li><li class="navelem"><a class="el" href="dir_7195eba4309c1334c83090581898beba.html">solid_dynamics</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#namespaces">Namespaces</a> &#124;
<a href="#typedef-members">Typedefs</a>  </div>
  <div class="headertitle">
<div class="title">elastic_dynamics.h File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Here, we define the algorithm classes for elastic solid dynamics.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;all_particle_dynamics.h&quot;</code><br />
<code>#include &quot;<a class="el" href="general__dynamics_8h_source.html">general_dynamics.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="base__kernel_8h_source.html">base_kernel.h</a>&quot;</code><br />
<code>#include &quot;all_body_relations.h&quot;</code><br />
<code>#include &quot;<a class="el" href="solid__body_8h_source.html">solid_body.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="solid__particles_8h_source.html">solid_particles.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="elastic__solid_8h_source.html">elastic_solid.h</a>&quot;</code><br />
</div>
<p><a href="elastic__dynamics_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_body_summation.html">SPH::BodySummation&lt; VariableType &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the summation of a particle variable in a body.  <a href="class_s_p_h_1_1_body_summation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1_body_moment.html">SPH::BodyMoment&lt; VariableType &gt;</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Compute the moment of a body.  <a href="class_s_p_h_1_1_body_moment.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_elastic_dynamics_initial_condition.html">SPH::solid_dynamics::ElasticDynamicsInitialCondition</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">set initial condition for a solid body with different material This is a abstract class to be override for case specific initial conditions.  <a href="class_s_p_h_1_1solid__dynamics_1_1_elastic_dynamics_initial_condition.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_update_elastic_normal_direction.html">SPH::solid_dynamics::UpdateElasticNormalDirection</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">update particle normal directions for elastic solid  <a href="class_s_p_h_1_1solid__dynamics_1_1_update_elastic_normal_direction.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_acoustic_time_step_size.html">SPH::solid_dynamics::AcousticTimeStepSize</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computing the acoustic time step size computing time step size.  <a href="class_s_p_h_1_1solid__dynamics_1_1_acoustic_time_step_size.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_deformation_gradient_tensor_by_summation.html">SPH::solid_dynamics::DeformationGradientTensorBySummation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">computing deformation gradient tensor by summation  <a href="class_s_p_h_1_1solid__dynamics_1_1_deformation_gradient_tensor_by_summation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_base_elastic_relaxation.html">SPH::solid_dynamics::BaseElasticRelaxation</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">base class for elastic relaxation  <a href="class_s_p_h_1_1solid__dynamics_1_1_base_elastic_relaxation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_base_stress_relaxation_first_half.html">SPH::solid_dynamics::BaseStressRelaxationFirstHalf</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">computing stress relaxation process by verlet time stepping This is the first step  <a href="class_s_p_h_1_1solid__dynamics_1_1_base_stress_relaxation_first_half.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_stress_relaxation_first_half.html">SPH::solid_dynamics::StressRelaxationFirstHalf</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">computing stress relaxation process by verlet time stepping This is the first step  <a href="class_s_p_h_1_1solid__dynamics_1_1_stress_relaxation_first_half.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_kirchhoff_particle_stress_relaxation_first_half.html">SPH::solid_dynamics::KirchhoffParticleStressRelaxationFirstHalf</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_kirchhoff_stress_relaxation_first_half.html">SPH::solid_dynamics::KirchhoffStressRelaxationFirstHalf</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Decompose the stress into particle stress includes isotropic stress and the stress due to non-homogeneous material properties. The preliminary shear stress is introduced by particle pair to avoid spurious stress and deformation. Note that, for the shear stress term, due to the mismatch of the divergence contribution between the pair-wise second-order derivative Laplacian formulation and particle-wise first-order gradient formulation, a correction factor slight large than one is introduced. Note that, if you see time step size goes unusually small, it may be due to the determinate of deformation matrix become negative. In this case, you may need decrease CFL number when computing time-step size.  <a href="class_s_p_h_1_1solid__dynamics_1_1_kirchhoff_stress_relaxation_first_half.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_s_p_h_1_1solid__dynamics_1_1_stress_relaxation_second_half.html">SPH::solid_dynamics::StressRelaxationSecondHalf</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">computing stress relaxation process by verlet time stepping This is the second step  <a href="class_s_p_h_1_1solid__dynamics_1_1_stress_relaxation_second_half.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespace_s_p_h"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespace_s_p_h.html">SPH</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:acb4a37d4126f2d8a04df1ccd67195dd9"><td class="memItemLeft" align="right" valign="top"><a id="acb4a37d4126f2d8a04df1ccd67195dd9"></a>
typedef DataDelegateSimple&lt; SolidBody, ElasticSolidParticles, ElasticSolid &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::ElasticSolidDataSimple</b></td></tr>
<tr class="separator:acb4a37d4126f2d8a04df1ccd67195dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b328aa564479d1e43e1f2120da0d06b"><td class="memItemLeft" align="right" valign="top"><a id="a6b328aa564479d1e43e1f2120da0d06b"></a>
typedef DataDelegateInner&lt; SolidBody, ElasticSolidParticles, ElasticSolid &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SPH::solid_dynamics::ElasticSolidDataInner</b></td></tr>
<tr class="separator:a6b328aa564479d1e43e1f2120da0d06b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Here, we define the algorithm classes for elastic solid dynamics. </p>
<p>We consider here a weakly compressible solids. <br />
</p><dl class="section author"><dt>Author</dt><dd>Luhui Han, Chi ZHang and Xiangyu Hu </dd></dl>
</div></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>
